home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 April / CHIP4_98.ISO / software / ccconrad / c-control setup / _setup.1 / 013.bas < prev    next >
Encoding:
BASIC Source File  |  1997-03-13  |  1.8 KB  |  82 lines

  1. '********************************************************************
  2. '
  3. ' C-Control/BASIC       013.BAS
  4. '
  5. ' Systemvoraussetzungen:
  6. '
  7. ' - Low-Current-LEDs an Port 1 bis Port 8, Vorwiderstand ca. 1k,
  8. '   alle Kathoden nach GND
  9. ' - 25k-Potentiometer, mit den Aussenkontakten
  10. '   zwischen 5V und GND geschaltet, Schleifer verbunden
  11. '   mit A/D 1
  12. ' - Referenzspannungseingang mit 5V verbunden
  13. '
  14. ' Schwerpunkte:
  15. '
  16. ' - Verwendung des Timers
  17. ' - Arbeit mit Tabellen
  18. ' - MAX-Funktion
  19. '
  20. ' Das Programm implementiert eine Balkenanzeige fⁿr A/D 1 mit acht
  21. ' LEDs. Dabei wird der Spitzenwert fuer 5 Sekunden in der
  22. ' jeweils obersten LED gehalten.
  23. '********************************************************************
  24.  
  25. ' --- Definitionen --------------------------------------------------
  26.  
  27. define leds byteport[1]
  28. define poti ad[1]
  29. define key port[9]
  30.  
  31. define nexttime word
  32. define sample byte
  33. define peak byte
  34.  
  35. define ledmask byte
  36. define peakmask byte
  37.  
  38. define DELAY 100        ' 2 sec
  39.  
  40.  
  41. ' --- Programmoperationen -------------------------------------------
  42.  
  43. peak = 0
  44. leds = OFF
  45.  
  46. ' Programmschleife
  47.  
  48. #loop
  49.   sample = poti / 31                ' 255 / 8 -> Schrittweite 31 
  50.   looktab bartab, sample, ledmask   ' "Leuchtbalken" aus Tabelle lesen
  51.  
  52.   peak = max(sample, peak)          ' neuen Maximalwert ermitteln
  53.   looktab peaktab, peak, peakmask   ' passende LED aus Tabelle
  54.  
  55.   leds = ledmask or peakmask        ' Max-LED mit "Leuchtbalken" kombinieren
  56.  
  57.   ' nach der Haltezeit den Maximalwert ruecksetzen
  58.   if timer >= nexttime then gosub resetpeak
  59.  
  60.   ' Programm auf Tastendruck beenden 
  61.   if not key then end
  62.  
  63. goto loop
  64.  
  65. #resetpeak
  66.   peak = 0
  67.   nexttime = timer + DELAY
  68. return
  69.  
  70. table bartab
  71.   &H00 &H01 &H03 &H07 &H0f  &H1f &H3F &H7F  &Hff
  72. tabend
  73.  
  74. table peaktab
  75.   &H00 &H01 &H02 &H04 &H08 &H10 &H20 &H40 &H80
  76. tabend
  77.  
  78.  
  79.  
  80.  
  81.  
  82.